✅project IDとuser IDをcacheする
from scrapbox-headless-script
現状
ScrapboxのWebSocketに接続するたびに、api/projects/:projectnameとapi/users/meを叩いてproject ID (scrapbox)とuser ID (scrapbox)を取得している
どうしたいか
project ID (scrapbox)とuser ID (scrapbox)を一度取得したら、タブがリロードされるまで保持しておく
理由
毎回毎回fetchするのが無駄
これらのIDがsession中に変更されることはまずない
user ID (scrapbox)はaccount切り替えのとき変更される
まず切り替わることは滅多にない
あったとしても、ページ全体がreloadされてscriptの再読み込みが走るだろうから、気にする必要がない
そういえばlogin accoutとは別のuserのidで書き込もうとしたらどうなるのだろうか?
project ID (scrapbox)はproject nameと紐付けて持っておけばいい
project nameが変わることは早々ない
project IDはproject nameが変わっても同一なのだろうか?takker.icon
同一な気もする
まあ何れにせよ気にする必要はないだろう
2projects間で名前を交換した場合がまずい?
table:projects
before after
1 /project-A ID-A /project-B ID-A
2 /project-B ID-B /poject-A ID-B
引数で指定されたproject nameを使って毎回web socketに接続する関数の場合
cacheなし
変更前1のprojectに接続していた場合、変更後は2のprojectに接続することになる
cacheあり
変更後も1のprojectに接続する
一度取得したproject idを使い回す関数の場合
joinPageRoom()の挙動
変更前1のprojectに接続していた場合、変更後でも1のprojectに接続することになる
同一IDのprojectに接続するのを選んだほうが仕様を統一できるな
cacheすることにしよう
↑説明が分かりづらい
そのうち直す
2022-02-10
16:01:59 merged
#2022-02-10 15:33:12